package com.bigzero.workflow.modules.system.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.util.List;

/**
 * 菜单vo
 * @Author: fanxinxiong
 * @Date: 2025-02-11 14:48:00
 */
@Data
public class MenuVo {

    /**主键id*/
    @Schema(description = "主键id", required = true)
    private String id;

    /**菜单名称*/
    @Schema(description = "菜单名称", required = true)
    private String name;

    /**路由(前端)*/
    @Schema(description = "路由(前端)", required = true)
    private String route;

    /**菜单类型:1.目录,2.菜单,3.tab页,4.按钮,5.超链接,6.后台接口,7.其他*/
    @Schema(description = "菜单类型:1.目录,2.菜单,3.tab页,4.按钮,5.超链接,6.后台接口,7.其他", required = true)
    private Integer type;

    /**父ID*/
    @Schema(description = "父ID", required = true)
    private String parentId;

    /**链接类型:1.无,2.内嵌,3.外链*/
    @Schema(description = "链接类型:1.无,2.内嵌,3.外链", required = true)
    private Integer linkType;

    /**授权(多个用逗号分隔,如:system:user:list,system:user:create)*/
    @Schema(description = "授权(多个用逗号分隔,如:system:user:list,system:user:create)", example = "system:user:list", required = true)
    private String perms;

    /**菜单图标*/
    @Schema(description = "菜单图标", required = true)
    private String icon;

    /**菜单URL*/
    @Schema(description = "菜单URL", required = true)
    private String url;

    /**序号*/
    @Schema(description = "序号", required = true)
    private Integer sort;

    /**子菜单集合*/
    @Schema(description = "子菜单集合")
    private List<MenuVo> children;
}
